package com.an.blog.service;

import com.an.blog.admin.domain.bo.BlogPhotoBo;
import com.an.blog.admin.domain.vo.BlogPhotoVo;
import com.an.blog.web.domain.vo.BlogPhotoWebVo;
import com.an.common.core.domain.PageQuery;
import com.an.common.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 相册图片Service接口
 *
 * @author Ann
 * @date 2023-05-08
 */
public interface IBlogPhotoService {

    /**
     * 查询相册图片
     */
    BlogPhotoVo queryById(Long photoId);

    /**
     * 查询相册图片列表
     *
     * @param bo        业务对象
     * @param pageQuery 页面查询
     * @return {@link TableDataInfo }<{@link BlogPhotoVo }>
     * @author: Ann
     * @createDate: 2023/05/10 21:04:27
     * @version: 1.0.0
     */
    TableDataInfo<BlogPhotoVo> queryPageList(BlogPhotoBo bo, PageQuery pageQuery);

    /**
     * 查询相册图片列表
     */
    List<BlogPhotoVo> queryList(BlogPhotoBo bo);

    /**
     * 新增相册图片
     *
     * @param bo 薄
     * @return {@link Boolean }
     * @author: Ann
     * @createDate: 2023/10/24 15:12:45
     * @version: 1.0.0
     */
    Boolean insertByBo(BlogPhotoBo bo);

    /**
     * 修改相册图片
     */
    Boolean updateByBo(BlogPhotoBo bo);

    /**
     * 校验并批量删除相册图片信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 更新照片状态
     *
     * @param bo 业务对象
     * @return int
     * @author: Ann
     * @createDate: 2023/05/10 22:33:26
     * @version: 1.0.0
     */
    int updatePhotoStatus(BlogPhotoBo bo);


    /**
     * 存在
     *
     * @param ids id
     * @return {@link Boolean }
     * @author: Ann
     * @createDate: 2023/05/11 11:44:57
     * @version: 1.0.0
     */
    Boolean exist(Collection<Long> ids);

    /**
     * 查询页面列表
     *
     * @param albumId   相册id
     * @param pageQuery 页面查询
     * @return {@link TableDataInfo }<{@link BlogPhotoWebVo }>
     * @author: Ann
     * @createDate: 2023/06/26 17:01:31
     * @version: 1.0.0
     */
    TableDataInfo<BlogPhotoWebVo> queryWebPageList(Long albumId, PageQuery pageQuery);
}
